package com.tom.architect02.zframework.handler.maniu;

import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue;

public class MessageQueue {
    // 阻塞队列，主线程和子线程 同时操作队列。
    // BlockingQueue很好的解决了多线程中，如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类，
    // 为我们快速搭建高质量的多线程程序带来极大的便利。
    BlockingQueue<Message> queue = new ArrayBlockingQueue<>(100);

//   put  =enqueueMessage
    public void enqueueMessage(Message msg) {
        try {
            queue.put(msg);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

//    get方法。
    public Message next() {
        Message msg = null;
        try {
            msg = queue.take(); // 从队列中取数据
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        return msg;
    }

}
